home *** CD-ROM | disk | FTP | other *** search
- Welcome to FIPS
- The First nondestructive Interactive Partition Splitting program
-
- Version 0.9 beta
- November 7, 1993
-
- Copyright 1993 by Arno Schaefer
-
-
- 0. What you need to use FIPS
- 1. Introduction
- 2. Safety
- 3. Restrictions
- 4. Before you start
- 5. Use with Stacker/SuperStor/Doublespace
- 6. Using FIPS
- 7. After splitting the partition
- 8. Commandline Switches
- 9. Troubleshooting
- 10. Credits
-
-
- FIPS is a program designed to split an existing DOS partition without deleting
- the data on it.
-
- FIPS is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 1, or (at your option)
- any later version.
-
- FIPS is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with FIPS; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Report problems and direct all questions to:
-
- schaefer@rbg.informatik.th-darmstadt.de
-
-
- 0. What you need to use FIPS
-
- You need a defragmentation program in order to move all data to the beginning
- of the hard disk. FIPS will only split your partition if you have enough free
- space at the end. Suitable programs are Norton's Speedisk, PCTools' Compress,
- or the Shareware programs ORG, DOG or SAFPAK (available by anonymous FTP from
- any simtel mirror in the <msdos.dskutl> directory). I did not test these how-
- ever, so don't blame me if they don't work for you.
- You may also want to use a program like Norton Disk Doctor to check your
- harddisk before and after using FIPS.
-
- FIPS was developed under DOS 5.0. It should work fine with anything above
- 3.0, perhaps even with 2.0. However it will not be of much use with older
- DOS versions, since the large partition sizes are only available since DOS 4.
- It should also work under DR-DOS (never tested it, though). It has been
- reported to work with DOS 6.0.
-
- Don't use FIPS in multitasking environments like OS/2, Desqview, Windows or
- the Linux DOS-Emulator. I don't know what will happen, but I would not like
- to take any chances. FIPS does not (yet ?) attempt to detect these, so be
- careful! Better boot from a DOS disk and then run FIPS.
-
-
- 1. Introduction
-
- The program was inspired by the Linux Project. When installing Linux on a
- PC that was used for DOS / Windows, many people want to retain a smaller
- partition for their DOS software. However, since most Harddisks contain
- only one large partition, you would normally be required to do a complete
- backup, erase the partition and build two (or more) new partitions. Then you
- would restore the backup to one of the new partitions.
- This is a very time consuming activity and requires lots of diskettes (why
- buy 50+ disks only to once backup and restore your HD?).
- FIPS was written to remedy this problem. You can now split a partition
- without losing any data, provided there is enough free space for the new
- partition at the end of the old one.
-
-
- 2. Safety
-
- FIPS was specifically designed to provide a maximum of safety. On startup
- it checks the Partition Table, Boot Sector and FAT for any inconsistencies.
- If it finds anything suspicious, it will tell you so. If there are errors,
- FIPS will not proceed.
- You have the possibility to write backup copies of your root- and bootsector
- to a floppy disk before proceeding. If something goes wrong, you may restore
- these with the program 'restorrb.exe' (see section 4).
- After you have entered the start cylinder for the new partition, FIPS will
- check if the new partition is completely empty by examining the FAT of the
- old one. If it is not, FIPS will stop.
- After having calculated the new Partition Table and Bootsector, FIPS will
- check them again, so that eventual bugs in the calculation may be detected.
- Only if everything is ok, FIPS will ask for permission to write the new
- Root- and Bootsector.
-
-
- 3. Restrictions
-
- FIPS will only work with Hard Disk BIOSes that use interrupt 13h for low
- level harddisk access. I don't know if there exist others, but if you happen
- to have one (large SCSI disks, perhaps?), FIPS will most certainly not find
- any meaningful data and thus will exit without attempting to write anything.
-
- FIPS will only work on disks with a sector size of 512 bytes.
- It seems that DOS is prepared to deal with different sector sizes, but so
- far I did not hear of formatting programs that use this possibility.
- If anybody can tell me anything about it, I may incorporate this in a later
- release.
-
- FIPS will not split partitions with 12-bit FATs (you would not want to split
- partitions with less than 10 MB, would you?).
-
- FIPS will only split DOS partitions. Partition Table and Bootsector must
- conform to the MSDOS 3.0+ conventions. This is marked by the system
- indicator byte in the partition table, it must have the value 4 (16-bit
- sector number) or 6 (32-bit sector number).
- It will especially *not* split Linux-partitions.
-
- FIPS does not yet work on extended DOS partitions.
-
- FIPS will not work if you already have four partitions, since it needs one
- free partition entry.
-
- FIPS will not reduce the original partition to a size with less than 4085
- clusters, because this would imply rewriting the 16-bit FAT to a 12-bit FAT.
-
- 4. Before you start
-
- Run CHKDSK on the partition you want to split. If you have Norton Disk Doctor
- or something similar, you may use it also. Make sure there remain no 'dead'
- clusters on the disk.
- Prepare a bootable floppy disk in drive A:. If you need a device driver to
- access your harddisk, install it on the floppy (see your Hard Disk Controller
- manual for details). Copy the file RESTORRB.EXE to this disk. When starting
- FIPS, you will be given the opportunity to write backup copies of your root-
- and bootsector to a file on drive A: called ROOTBOOT.00x (where x stands
- for a digit from 0 to 9).
- If anything goes wrong while using FIPS, you can restore the original infor-
- mation by booting from the floppy and running RESTORRB.
-
- In addition to this you *must* now defragment your Harddisk. All of the space
- that will be used for the new partition must be free. Be aware that the
- Windows Swapfile will not be moved by most defragmentation programs. You must
- uninstall it (in the 386enhanced part of the Windows Control Panel) and rein-
- stall it after using FIPS.
- If you use IMAGE or MIRROR, the last sector of the hard disks contains a
- hidden system file with a pointer to your mirror files. You must delete this
- file before using FIPS (it will be recreated the next time you run mirror).
- Do 'attrib -r -s -h image.idx' or 'attrib -r -s -h mirorsav.fil' in the root-
- directory, then delete the file.
- If FIPS still complains about the new partition not being empty after defrag-
- mentation, this may mean
-
- a. You still have too much data in the remaining partition. Consider making
- the new partition smaller or deleting some of the data.
-
- b. There are hidden files in the space of the new partition that have not
- been moved by the defragmentation program. Make sure to which program
- they belong. If a file is a swap file of some program (for example NDOS)
- it is possible that it can be safely deleted (and will be recreated
- automatically later when the need arises). See your manual for details.
-
- If the file belongs to some sort of copy protection, you must uninstall
- the program to which it belongs and reinstall it after repartitioning.
-
- I can't give you more aid in this - if you really can't figure out what
- to do, contact me directly.
-
- Attention! If you use a DOS-version lower than DOS 5.0 do *not* try to move
- DOS' hidden system files (ibmbio.com & ibmdos.com or something similar). You
- will end up with a harddisk that won't boot any more. Since these files are
- already in the first sectors of the partition, it is not necessary to move
- them.
-
- Be aware that the location of your DOS partitions in the partition table may
- change. If you use the new partition under DOS *and* you have an extended
- partition and/or two drives, this means that the names of the partitions may
- change (D: may become E: for example). I have taken care that C: always re-
- mains C:, so that you will still be able to boot.
-
- For Linux users:
- This also means that the number of the DOS partition under Linux may change
- (/dev/hda3 may become /dev/hda1). Any existing Linux partitions will not
- change, so that you will have no trouble booting (this was corrected in ver-
- sion 0.2.2). You just need to edit your /etc/fstab file if you mount your DOS
- partition on bootup.
-
-
- 5. Use with Stacker/SuperStor/Doublespace
-
- I received reports that the following scheme works with Stacker, it may also
- work with the other programs. I can't confirm this, since I don't use any of
- these programs.
-
- a. Make sure that there is enough space on the compressed partition to be
- split.
- b. Use the Checkdisk program that comes with the compression software.
- c. Remove the Windows swapfile (if you have one).
- d. Decrease the size of the compressed volume with the utilities that come
- with the compression software.
- e. Boot without the compression device driver.
- f. Look at the directory listing to see how much space is available for the
- new partition.
- i. use FIPS as described below.
-
- If the compressed volume is fragmented (I don't know if this is possible),
- FIPS will complain about the partition not being empty. You may need to add
- the following steps. Attention: I can not guarantee that this will not cor-
- rupt the compression scheme, see your manual for details. It seems to work
- with Stacker, but I have no reports about the other programs.
-
- g. Remove Hidden, Readonly and System attributes from compressed volume.
- h. Defragment the partition.
-
- j. Reset Hidden, Readonly and System attributes on compressed volume.
-
- Please let me know if this scheme works for you, so that I can include this
- info in later releases.
-
-
- 6. Using FIPS
-
- You start FIPS by typing FIPS at the DOS prompt, followed by <ENTER>.
- You may exit from the program at any time by pressing <CTRL-C>.
-
- FIPS will first detect you hard disks, if you have more than one, it will
- ask you which one you want to work on.
- FIPS then reads the rootsector of the hard disk and display the partition
- table.
-
- Example:
-
- | | Start | | End | Start |Number of|
- Part.|bootable|Head Cyl. Sector|System|Head Cyl. Sector| Sector |Sectors | MB
- -----+--------+----------------+------+----------------+--------+---------+----
- 1 | yes | 0 148 1| 83h| 15 295 63| 149184| 149184| 72
- 2 | no | 1 0 1| 06h| 15 139 63| 63| 141057| 68
- 3 | no | 0 140 1| 06h| 15 147 63| 141120| 8064| 3
- 4 | no | 0 0 0| 00h| 0 0 0| 0| 0| 0
-
-
- If you don't know what to make of this, don't worry too much. You may just use
- the number of Megabytes to identify your partitions.
-
- The rootsector is then checked for errors.
-
- If you have more than one partition on the disk, you will be asked which one
- you want to split.
-
- The bootsector of the chosen partition is read and some information is dis-
- played.
-
- Example:
-
- Bytes per sector: 512
- Sectors per cluster: 8
- Reserved sectors: 1
- Number of FATs: 2
- Number of rootdirectory entries: 512
- Number of sectors (short): 0
- Media descriptor byte: f8h
- Sectors per FAT: 145
- Sectors per track: 63
- Drive heads: 16
- Hidden sectors: 63
- Number of sectors (long): 141057
- Physical drive number: 80h
- Signature: 29h
-
-
- FIPS checks if this information is consistent with the partition table and
- tries to detect other errors.
-
- It then verifies if the two copies of the FAT are identical, if they are not,
- FIPS will exit with an error message.
-
- If everything checks out ok, you may now enter on which cylinder the new par-
- tition should start. The calculation is the following: The size of one cylin-
- der in KB is: number of heads * number of sectors per track / 2 (in the above
- case 504 KByte). The new starting cylinder is: start cylinder of partition
- (from the partition table) + (desired size of reduced partition in KB / size
- of one cylinder in KB).
-
- Example:
- If I want to reduce partition 2 in the above example to 50 MB, I calculate:
- 0 + ((50 * 1024) / 504) = 101. This is the number I would enter, which would
- result in a 50 MB and a new 18 MB partition.
-
- FIPS will look if the space for the new partition is empty, if not it will
- stop.
-
- After this, FIPS will calculate the changes to the rootsector, check the
- changes and display the new partition table. You may now choose to reedit the
- partition table (this will return you to the point where you select the par-
- tition) or to continue. If you type 'c', FIPS will calculate the changed
- bootsector, check it again and prompt you if you want to proceed. If you type
- 'y' then, FIPS will write the changes to the disk and exit.
-
-
- 7. After splitting the partition
-
- Your new partition will be recognized by DOS after your first reboot. Make
- sure to disable all programs that write to your disk in config.sys and
- autoexec.bat before rebooting. Your best bet is to rename these two files
- or to boot from floppy. You should especially disable MIRROR or IMAGE.
- After rebooting, use CHKDSK or Norton Disk Doctor to make sure your old (now
- smaller) partition is ok. If you don't find any errors, you may now reboot
- with your normal config.sys and autoexec.bat. Start some programs and make
- sure you can still read your data.
-
- If you want to use your new partition under DOS, you must format it. If you
- have multiple partitions, make sure to format the right one, the drive names
- may have changed!
- If you want to use the partition under Linux, you may now change the system
- indicator byte with Linux' fdisk, then use MKFS.
-
- If you want to split the new partition again in two smaller ones, you must
- first format it under DOS, otherwise FIPS will complain (btw. since the
- new partition does not yet contain any data, you could as well use fdisk
- to delete it and create two new ones).
-
-
- 8. Commandline Switches
-
- Since version 0.2 there are commandline switches to use FIPS non-interactively
- and to override some of the error messages. If you prefer the DOS style, you
- may use '/' instead of '-' as the switch character. The switches may be arbi-
- trarily combined. Type 'FIPS -help' to get a list of the switches.
- Here is a more detailed explanation:
-
- -q or -quiet : quiet mode
-
- The program only displays the prompts for input, nothing else. If you have
- selected drive,partition, start cylinder and save/nosave on the commandline,
- the program will run completely silent. Attention: no write confirmation is
- requested. Like this, you can use the program in a batch file (I don't think
- anybody will ever need this feature - you don't change your partition size
- every day - but here it is :-). Perhaps it could be useful in a network
- environment with many identical workstations.
-
- -t or -test : test mode (no writes to disk)
-
- This doesn't need much explanation.
-
- -d or -debug : debug mode
-
- In this mode, a complete transcript of your session along with some additio-
- nal information is written to the file FIPSINFO.DBG in the current directory.
- You can send this file to me in case of trouble (see below).
- This switch does not interfere with the -d<num> switch.
-
- -h or -help or -? : help page
-
- A short summary of the switches
-
- -d<num> : select drive <num>
-
- Preselect the drive number with this switch. Valid numbers are 128 to 255.
- This may also be used to override the automatic drive detection - if for any
- reason the drive is not found by FIPS, you may try this switch.
-
- -p<num> : select partition <num>
-
- Preselect the partition number (1-4). Only valid partitions are accepted.
-
- -c<num> : new start cylinder = <num>
-
- Preselect the new start cylinder - only valid cylinder numbers are accepted.
-
- -s+ : save rootsector and bootsector to floppy without prompting
- -s- : do not save rootsector and bootsector to floppy
-
- These switches skip the question if you want to save the root- and bootsector.
- Insert a floppy disk before starting FIPS when using -s+.
-
- -omb : override 'More than one bootable Partition'
-
- There are some bootprograms that do not complain about more than one bootable
- partition - they will just use the first one. If you have such a program in
- your rootsector and the PC boots normally, you may use this switch to skip
- the error message. I would recommend however to delete the wrong flags, if
- you have a suitable program.
-
- -obf : override 'Invalid bootable-flag'
-
- By modifying the bootable flag and the bootprogram it is theoretically pos-
- sible to boot from the second harddrive. If you happen to have such a confi-
- guration, use this switch to skip the error message.
-
- -ore : override 'Number of Rootdir entries must be multiple of 16'
-
- An invalid number of Rootdir entries is accepted by DOS. If you have no other
- means to correct the entry, you may use this switch to skip the error message.
-
- -olf : override 'FAT too large'
-
- Since the number of sectors per FAT is a 2-byte number, it is theoretically
- possible to have up to 65535 sectors per FAT. This is accepted by DOS, but a
- number greater than 256 is not useful, since the largest possible FAT has 256
- sectors.
-
- -osf : override 'FAT too small'
-
- If the number of clusters in the partition is larger than there are entries
- in the FAT, DOS uses only part of the partition. Something has gone *very*
- wrong with this partition, but all is not lost - use this switch and reduce
- the new partition to a size that can be properly managed.
-
- -omd : override 'Wrong Media Descriptor Byte in FAT/Bootsector'
-
- The media descriptor byte should be F8h for a harddisk, but other values like
- FCh are accepted by DOS (perhaps used for removable media ?), so you can
- override the error message with this switch.
-
-
- 9. Troubleshooting
-
- FIPS is still very experimental, and when in doubt I usually decided to stay
- safe and display error messages when encountering suspicious configurations.
- For some of the minor errors I added override switches (see section 8).
- If you can't resolve a problem yourself, or have a configuration not sup-
- ported by FIPS, or if you suspect a bug in FIPS, make a transcript of your
- session using the -d switch and send the file FIPSINFO.DBG along with a
- short comment to schaefer@rbg.informatik.th-darmstadt.de. Possibly your
- problem has already been solved.
-
-
- 10. Credits
-
- FIPS is based on the procedure described by Drew Eckhardt in Linux digest132.
- Most of what I know about Harddisk structures comes from the excellent german
- book 'Scheibenkleister II' by Claus Brod and Anton Stepper. It is for the
- Atari ST, but much of it applies to PCs also.
- Information on the Harddisk Interrupts was drawn from Ralf Brown's Interrupt
- List. Thanks to Hamish Coleman for some useful info and to Paul Smith for
- his good suggestions. Gunnar Hilmarsson suggested the procedure for stacked
- drives, and Miguel Alvarez helped me improve the partition ordering. Chetan
- Patil, Rand Phares and Eric Jung pointed me at bugs in the program and
- documentation. Thanks to all others who sent me feedback.
-
-
- Arno Schaefer
- schaefer@rbg.informatik.th-darmstadt.de
-